Electronic device for reducing interleaving write access conflicts in optimized concurrent interleaving architecture for high throughput turbo decoding

ABSTRACT

In a particular embodiment using a distributed architecture, the electronic device comprises a source memory means partitioned in N elementary source memories for storing a sequence of input data, processing means clocked by a clock signal and having N outputs for producing per cycle of the clock signal N data respectively associated to N input data respectively stored in the N elementary source memories at relative source addresses, N single port target memories, N interleaving tables containing for each relative source address the number of one target memory and the corresponding relative target address therein, N cells connected in a ring structure, each cell being further connected between one output of the processing means, one interleaving table, and the port of one target memory, each cell being adapted to receive data from said output of the processing means and from its two neighbouring cells or to write at least some of these received data sequentially in the associated target memory, in accordance with the contents of said interleaving tables.

[0001] The invention relates in general to avoiding write access conflicts in interleaving or deinterleaving, in particular for high throughput turbo-decoding.

[0002] An application of the invention is directed in general to the field of wireless communication systems, and more particularly to the CDMA systems such as the different CDMA based mobile radio systems like CDMA 2000, WCDMA (Wide Band CDMA) or the IS-95 standard.

[0003] Turbo-codes, introduced in 1993 are part of today's communication standards due to their outstanding forward error correction performance. They consist of concatenated component codes that work on the same block of information bits, separated by interleavers. The component codes are decoded individually. Key to the performance of Turbo-Codes is the iterative exchange of information between the component decoders.

[0004] The information exchanged iteratively represents the likehood of the received bit k to have been sent either as d_(k)=0 or d_(k)=1. The decision is represented by the sign of the Log-Likehood-Ratio $\left( {{{LLR}\quad \left( d_{k} \right)} = {\log \quad \frac{P\left( {d_{k} = 1} \right)}{P\left( {d_{k} = 0} \right)}}} \right),$

[0005] the confidence in this decision by its magnitude. From now on the information exchanged will simply be referred to as LLR.

[0006] Interleaving is scrambling the processing order to break up neighbourhood-relations. It is essential for the performance of Turbo-Codes. The LLR produced at position k, denoted as LLR(d_(k)), is written to position interleaved(k) in the RAM:

LLR_(prod)(d_(k))→LLR_(RAM)(d_(interleaved(k))).

[0007] The interleaver and deinterleaver tables contain one-to-one mappings of source addresses to target addresses. Table 1 shows an example for reordering six LLRs to perform interleaving. TABLE 1 Interleaver and Deinterleaver Tables for six LLRs. Address Interleaved Address Deinterleaved 1 3 1 6 2 6 2 4 3 5 3 1 4 2 4 5 5 4 5 3 6 1 6 2

[0008] Deinterleaving brings them into the original sequence again. (A 3GPP compliant table, for example, would contain up to 5114 entries).

[0009] One LLR has to be read for every LLR produced. Is only one LLR produced per time-step, interleaving can be performed on the fly through indirect addressing. However, high-throughput applications demand parallel architectures that produce more than one LLR per time-step. Thus, multiple LLRs have to be read and written concurrently. Let the number of LLRs read and written be denoted as N.

[0010] In a 0.20 μm technology a single producer can achieve a maximum throughput of about 7 Mbit/s assuming 10 iterations. For 100 M bit/s, a reasonable assumption for future communication systems, N=16 producers would be necessary requiring 16-port RAMs. But the use of N-port RAMs to solve access conflicts is, in general, infeasible.

[0011] Read access conflicts can be avoided by using N individual memories. Write access conflicts can not be avoided that easily: the positions where the produced LLRs have to be stored at depend on the interleaver. For arbitrary interleavers the target memory, the RAM each LLR has to go to, is not known at design time. At each time-step and for each RAM, the number of LLRs to be stored can vary from 0 to N. The resulting concurrent accesses to the same single port memory are the real bottleneck in high throughput Turbo-Decoding.

[0012] The problem is best illustrated by taking the interleaver table of Table 1 for two concurrently produced LLRs and assigning its addresses to two individual RAMs. Table 2 shows the interleaver table entries together with the associated RAMs and relative addresses. (From now on, only the interleaver is mentioned. Of course, the same concepts apply to the deinterleaver as well). TABLE 2 Interleaver Table with according RAMs. source relative target relative RAM Address Address Interleaved RAM Address → 1 1 1 3 1 3 1 2 2 6 2 3 1 3 3 5 2 2 → 2 1 4 2 1 2 2 2 5 4 2 1 2 3 6 1 1 1

[0013] The number of write accesses can be determined from the interleaver tables and the producing scheme: assuming that the two LLRs are produced in order of ascending relative addresses (i.e. in the first time-step at the absolute addresses 1 and 4) and interleaving is performed according to Table 2, Table 3 shows the resulting write accesses. TABLE 3 Write Accesses to LLR RAMs Write Accesses to Write Accesses to Time-step RAM 1 RAM 2 1 2 0 2 0 2 3 1 1

[0014] In the first time-step, for example, one LLR is read from source RAM1 (Addr. 1) and written to target RAM1 (Addr. 3). The other one is read concurrently from source RAM2 (Addr. 1) and written to target RAM1 (Addr. 2), which results in two concurrent write accesses for target RAM1.

[0015] In [A. Giuletti, L. Van Der Perre, M. Strum. Parallel turbo coding interleavers: avoiding collisions in accesses to storage elements. IEEE Electronics Letters Vol. 38 N°5, Feb. 2002], a dedicated interleaving scheme for each given architecture and block-size is derived circumventing the arising access problems. It, however, does not allow for pre-defined interleavers, as for example in a standard like 3GPP, nor for arbitrary block-lengths or degrees of parallelization.

[0016] Other approaches use one fixed interleaver realized through wired connections between component decoders.

[0017] The invention proposes other architectures capable of performing concurrent interleaving.

[0018] An architecture according to a first variant of the invention performs concurrent instead of sequential interleaving, thus widening the interleaver bottleneck and enabling parallelized high-speed Turbo-Decoders which produces more than one LLR per time-step.

[0019] This architecture is, moreover, independent of any interleaver design or access scheme deployment.

[0020] This architecture according to a first variant of the invention is based on a single LLR distributor to determine the target RAM and address for all the N incoming data. N associated data sets made up of incoming data and local addresses are formed. An additional “relevant-or-not” signal is given to each buffer for each data set.

[0021] Every buffer thus must have access to all data sets. From all the sets each buffer selects those which are aimed at its local target RAM. A tree-like structure is built with the LLR distributor as root and buffers associated with target RAMs as leaves.

[0022] In other words, an electronic device according to a first variant of the invention as claimed, comprises

[0023] a source memory means partitioned in N elementary source memories for storing a sequence of input data,

[0024] processing means clocked by a clock signal and having N outputs for producing per cycle of the clock signal N data respectively associated to N input data respectively stored in the N elementary source memories at relative source addresses,

[0025] N single port target memories,

[0026] N interleaving tables containing for each relative source address the number of one target memory and the corresponding relative target address therein, and

[0027] N cells.

[0028] Each cell is connected between the N outputs of the processing means, the N interleaving tables, and the port of one target memory. Each cell is adapted to receive data from said N outputs of the processing means, to select up to N received data in accordance with the contents of said interleaving tables, and to write the selected data sequentially in the associated target memory.

[0029] As it will be indicated thereafter more in details, the single LLR distributor preferably contains functionally a part of each cell, i.e. the sorting means which permits to select among the data received by a cell, those which are relevant for this cell and are to be stored in the target memory actually connected to this cell.

[0030] Further the fact that a cell is able to select up to N received data, includes the case where none of the N received data is selected, because all of the N received data are to be stored in other memories than that actually connected to this cell.

[0031] More generally, according to an embodiment of the inventions, each cell comprises sorting buffer means connected to the N outputs of the processing means, to the N interleaving tables and to the corresponding target memory, for

[0032] receiving N data with their associated number of target memory and the associated relative target address,

[0033] selecting from the N data those having an associated number of target memory identical to the number of the target memory connected to the cell, and

[0034] delivering them sequentially to the target memory.

[0035] More particularly, each sorting buffer means comprises

[0036] sorting means having N inputs forming the inputs of the sorting buffer means, N outputs, and control input means for receiving said associated numbers of target memories, said sorting means being adapted to select from the data received at its N inputs those having an associated number of target memory identical with said the number of the target memory connected to the cell, and to deliver the selected data to consecutive outputs,

[0037] register means comprising a predetermined number of elementary registers, each elementary register being adapted to store a selected data with its relative target address,

[0038] writing pointer means for writing the selected data in consecutive elementary registers before being shifted by the number of values actually written, and

[0039] reading pointer means for reading sequentially the elementary registers.

[0040] For large N, the critical path of this architecture is in the LLR distributor and increases with increasing N.

[0041] Moreover, the buffers themselves are capable of storing multiple inputs in one cycle. Such buffers have been developed, but their intrinsic complexity grows exponentially with the number of inputs. The number of registers in each buffer has a minor role. An optimization based on two stages of buffers (i.e. based on a dual stage reading pointer) permits to limit the number of inputs per buffer.

[0042] A more detailed but non restrictive example of an architecture ., according to the first variant of the invention has been presented in ISCAS'02 (M. J. Thul, N. Wehn, and L. P. Rao. Enabling High-Speed Turbo-Decoding Through Concurrent Interleaving. In Proc. 2002 IEEE International Symposium on Circuits and Systems (ISCAS'02). Phoenix, Ariz., USA, May 2002.]

[0043] Although the electronic device according to this first variant of the invention offers several advantages, the interconnect problem, however, is still critical in a multi-stage approach because the LLR distributor spans the whole chip. Design of such a far spread component is a challenge hard to meet using current design methodologies. Moreover, as stated above, each buffer is connected to the LLR distributor through N data sets and the corresponding validity signals. This leads to extensive top level routing. Thus this architecture may have negative interconnect implications in deep-submicron technologies.

[0044] The main communication basically takes place on a shared medium with very high load, making each data transfer an expensive broadcast. Such broadcasts have been identified as performance and power bottleneck.

[0045] A second variant of the invention counteracts the problems of distributed logic and broadcasted communication by designing another concurrent interleaving architecture based on point-to-point interconnected nodes.

[0046] One aim of this second variant of the invention is to resolve the write access conflicts without increasing the overall latency. Further, any arbitrary number of soft-values produced can be handled, and the architecture can be distributed to smoothly fit into the whole decoder design.

[0047] An electronic device according to a second variant of the invention as claimed, comprises

[0048] a source memory means partitioned in N elementary source memories for storing a sequence of input data,

[0049] processing means clocked by a clock signal and having N outputs for producing per cycle of the clock signal N data respectively associated to N input data respectively stored in the N elementary source memories at relative source addresses,

[0050] N single port target memories,

[0051] N interleaving tables containing for each relative source address the number of one target memory and the corresponding relative target address therein, and,

[0052] N cells connected in a ring structure,

[0053] Each cell is further connected between one output of the processing means, one interleaving table, and the port of one target memory.

[0054] Each cell is adapted to receive data from said output of the processing means and from its two neighbouring cells, and to dispatch at least some of these received data to at least one of said two neighbouring cells or to write at least some of these received data sequentially in the associated target memory, in accordance with the contents of said interleaving tables.

[0055] In other words, the interconnect driven design approach according to the invention leads to simplified local interleaver cells with almost negligible control flow. No global routing nor global control is necessary.

[0056] According to an embodiment of the invention, each cell comprises

[0057] distribution means connected to the corresponding output of the processing means, to the corresponding interleaving table and to the two neighbouring cells for receiving generated data respectively associated with target information containing the corresponding number of the target memory and the corresponding relative target address, and for delivering said generated data associated with their target information, together with corresponding direction information, and

[0058] sorting buffer means connected to said distribution means, to the corresponding target memory and to the two neighbouring cells for receiving the corresponding data associated with their target information and their corresponding direction information, selecting from these data those which are to be actually passed through in accordance with the corresponding direction information, and delivering them sequentially.

[0059] According to an embodiment of the invention, said distribution means comprises

[0060] a local distributor connected to the corresponding output of the processing means and to the corresponding interleaving table for receiving a generated local data associated with a target information, and for delivering said generated local data associated with its target information, together with a direction information,

[0061] a right-in distributor for receiving a right-in data delivered by the right neighbouring cell associated with a target information, and for delivering said right-in data associated with its target information, together with a direction information,

[0062] a left-in distributor for receiving a left-in data delivered by the left neighbouring cell associated with a target information, and for delivering said left-in data associated with its target information, together with a direction information.

[0063] According to an embodiment of the invention, said sorting buffer means comprises

[0064] a local out sorting buffer having three inputs respectively connected to the local, right-in and left-in distributors, and one output connected to the port of the corresponding target memory, for receiving the corresponding data associated with their target information and their corresponding direction information, selecting from these data those which are to be stored in the target memory in accordance with the corresponding direction information, and for writing them sequentially in said target memory in accordance with their relative target addresses,

[0065] a left out sorting buffer having two inputs respectively connected to the local and right-in distributors, and one output connected to right-in distributor of the left neighbouring cell, for receiving the corresponding data associated with their target information and their direction information, selecting from these data those which are to be delivered to said right in distributor of the left neighbouring cell in accordance with their direction information, and for delivering sequentially said selected data with their target information,

[0066] a right out sorting buffer having two inputs respectively connected to the local and left-in distributors, and one output connected to the left-in distributor of the right neighbouring cell, for receiving the corresponding data associated with their target information and their direction information, selecting from these data those which are to be delivered to said left-in distributor of the right neighbouring cell in accordance with their direction information, and for delivering sequentially said selected data with their target information.

[0067] Each sorting buffer comprises advantageously

[0068] sorting means associated with a reference direction information, having inputs forming the inputs of the sorting buffer, a number of outputs equal to the number of inputs, and control input means for receiving said direction information, said sorting means being adapted to select from the data received at its inputs those having a direction information identical with said reference direction information, and to deliver the selected data to consecutive outputs,

[0069] register means comprising a predetermined number of elementary register, each elementary register being adapted to store a selected data with its target information,

[0070] writing pointer means for writing the selected data in consecutive elementary registers before being shifted by the number of values actually written, and

[0071] reading pointer means for reading sequentially the elementary registers.

[0072] The electronic device according to the invention, either in the first variant or in the second variant may be realized by an integrated circuit.

[0073] The invention as claimed proposes also a code-decoder or a code-encoder comprising an electronic device as defined above.

[0074] This code decoder can be a turbo-code decoder.

[0075] The invention as claimed proposes also a component of a wireless communication system, comprising a code decoder as defined above.

[0076] Such a component can form a cellular mobile phone or a base station.

[0077] Other advantages and features of the invention will appear on examining the detailed description of embodiments, these being in no way limiting, and of the appended drawings in which:

[0078]FIG. 1 shows a receiving chain of a cellular mobile phone including an electronic device according to the invention,

[0079]FIG. 2 shows a turbo-decoder including an electronic device according to the invention,

[0080]FIG. 3 is another diagrammatical representation of an electronic device according to a first variant of the invention incorporated in a turbo-code decoder,

[0081]FIG. 4 shows more in details a part of an electronic device according to a first variant of the invention,

[0082]FIGS. 5 and 6 show more in details, but still diagrammatically sorting buffer means incorporated in an electronic device according to a first variant of the invention,

[0083]FIG. 7 shows more in details, but still diagrammatically sorting buffer means with dual stage reading pointer means incorporated in an electronic device according to a first variant of the invention

[0084]FIG. 8 is another diagrammatical representation of an electronic device according to a second variant of the invention incorporated in a turbo-code decoder,

[0085]FIG. 9 shows more in details a part of an electronic device according to a second variant of the invention,

[0086]FIG. 10 shows more in detail but still diagrammatically, a local cell incorporated in an electronic device according to a second variant of the invention,

[0087]FIGS. 11 and 12 show more in details, but still diagrammatically sorting buffer incorporated in an electronic device according to a second variant of the invention.

[0088] We refer now to FIG. 1 which illustrates a turbo-decoder according to the invention which is incorporated in the reception chain of a cellular mobile phone TP, although the invention is not limited to this particular application.

[0089] The encoded signal is being received by the antenna ANT and processed by the radio frequency stage REF of the receiver. At the output of the REF stage, the signal is converted into the digital domain by an A/D converter. The digital base band signal is then processed by a “rake” demodulator RR which is used generally in the case of a CDMA system.

[0090] Then, the channel decoding stage includes a Turbo-code decoder CTD according to the invention.

[0091] The processing chain comprises also a source decoding block DCS, which performs the source decoding treatments.

[0092] The third generation mobile radio system specifies Convolutional codes as well as Turbo-codes as channel coding techniques [3GPP, Technical Specification Group Radio Access Network; Multiplexing and channel coding (FDD); (3G TS 25.212 version 3.5.0(2000-12)), Release 1999].

[0093] In Turbo-code encoders forward error correction is enabled by introducing parity bits. For Turbo-codes, the original information, denoted as systematic information, is transmitted together with the parity information. The encoder for 3GPP consists of two recursive systematic convolutional (RSC) encoders with constraint length K=4, which can also be interpreted as 8-state finite state machines. The first RSC encoder works on the block of information in its original, the second one in an interleaved sequence.

[0094] On the receiver side, there is a corresponding component decoder for each of them. Each component decoder implements for example a so-called Maximum-A-Posteriori (MAP) Algorithm, and is usually so-called Soft-in-Soft-out (SISO) decoder.

[0095] Each block of information is decoded in an iterative manner. The systematic information and the parity information serve as inputs of the first component decoder (MAP1). The soft-output of MAP1 reflects its confidence on the received bits of being sent either as ‘0’ or ‘1’. These confidences are interleaved in the same manner as in the encoder and passed to the second component decoder (MAP2) as a-priori information. The second component decoder uses this information to bias its estimation comprising the interleaved systematic information and the parity information of the second encoder. The soft-outputs are again passed on to MAP1, and so on. The exchange continues until a stop criterion is fulfilled. Stop criteria range from simple cases, such as “fixed number of iterations”, over cyclic redundancy check (CRC) to rather complex statistical analysis.

[0096] Implementation issues for Turbo-decoder architectures using the MAP algorithm have already been discussed in several papers and are well known [A. Worm. Implementation Issues of Turbo-Decoders. Phd thesis, Institute of Microelectronic Systems, Department of is Electrical engineering and Information Technology, University of Kaiserslautern, Forschungsberichte Mikroelektronik, Bd.3, Germany, 2001].

[0097] The MAP algorithm is transformed into the logarithmic domain to reduce operator strength [P. Robertson, E. Villebrun and P. Hoeher; A comparison of Optimal and Sub-Optimal MAP decoding Algorithms Operating in the Log-Domain; Proc. 1995 International Conference on Communications (ICC'95), June 1995, Seattle, Wash., USA]: multiplications become additions, and additions are replaced by a modified comparison. It consists of a forward recursion, a backward recursion and soft-output calculation.

[0098] Decoding Turbo codes by searching the most likely codeword is far too complex. Therefore iterative decoding is advised. The two convolutional codes are decoded separately. While doing this, each decoder incorporates information that has been gathered by the other. This “gathering of information” is the exchange of soft output values, where the bit-estimates of one unit are transformed into a priori information for the next. The decoders hence have to be soft-input soft-output (SISO) units.

[0099] The confidence in the bit estimation is represented as a Log-Likelihood-Ratio (LLR): ${\Lambda \left( d_{k} \right)} = {\ln \frac{P\left( {d_{k} = 1} \right)}{P\left( {d_{k} = 0} \right)}}$

[0100] The sign shows whether this bit is supposed to be one or zero whereas the confidence in the decision is represented by the magnitude.

[0101] In order to extract the information that has been gathered during the last decoding stage, the systematic and a priori information that lead to this estimate have to be subtracted. This yields: $\begin{matrix} {{L^{1}\left( d_{k} \right)} = {{\Lambda^{1}\left( d_{k} \right)} - y_{k}^{s} - {L_{deint}^{2}\left( d_{k} \right)}}} \\ {{L^{2}\left( d_{k} \right)} = {{\Lambda^{2}\left( d_{k} \right)} - y_{k\quad {int}}^{s} - {L_{int}^{2}\left( d_{k} \right)}}} \end{matrix}$

[0102] This is called the extrinsic information.

[0103] The confidence of one decoder in a bit to have a certain value biases the initial guess of the other.

[0104]FIG. 2 shows such a Turbo code decoder CTD consisting of two MAP decoders, interleaving means IL and de-interleaving means DIL. Feeding the input of one decoder as a priori information input to the next enables the improvement over the decoding iterations. It also gave Turbo codes their name, as it resembles the “feedback-of-exhaust” used in combustion turbo engines. Inputs to the decoder are the received channel values (systematic, parity1 and parity2); during the very first MAP1 operation, the a priori information is set to zero.

[0105] In addition to the SISO decoders MAP1 and MAP2, memories are needed to store the input and output values, in particular for the interleaver and deinterleaver pattern.

[0106]FIG. 3 shows diagrammatically some of these memories.

[0107] More precisely, on this example which illustrates a first variant of the invention, the MAP1 unit, as well as the MAP2 unit, is a multi-LLR producer which has N outputs (here: N=3) for producing per cycle of the clock signal which clocks the MAP unit, N data (here: N LLR) respectively associated to N input data respectively stored in N elementary source memories which form source memory means SMM.

[0108] A structure CLS of N cells is connected to the N outputs of the MAP1 unit as well as to interleaving table means constituted here by N interleaving tables. After having passed through the structure CLS, the N produced data (here, the N produced LLR) are stored in target memory means TMM constituted here by N target memories.

[0109] Each of the source memory and the target memory is a single port memory.

[0110] For the MAP2 unit, the target memory means TMM act as source memory means and the source memory means SMM of the MAP1 unit act as target memory means for the MAP2 unit. Further, the interleaving table means is replaced by deinterleaving table means DILTM.

[0111] Generally speaking, an electronic device according to the first variant of the invention comprises processing means (here, the MAP1 unit, for example) source memory means SMM, the structure CLS, the interleaving table means ILTM, and the target memory means TMM.

[0112] The structure and the operation of an electronic device according to the first variant of the invention will be now described more in details in reference to the FIGS. 4 to 7. Although the electronic device is described by using interleaving table means, it is clear that the same concept applies to deinterleaving table means which can be in fact considered as being also in a certain way interleaving table means.

[0113] As illustrated more in details in FIG. 4, in which N is equal to 3, each cell CLi of structure CLS is connected between the N outputs of the processing means MAP1, the N interleaving table ILTi and the port of one target memory TMi.

[0114] Generally speaking, each cell is adapted to receive data from said N outputs of the processing means, to select up to N received data in accordance with the contents of said interleaving tables, and to write the selected data sequentially in the associated target memory.

[0115] Each interleaver table ILTi comprises, for each relative source address of one source memory, the relative target address of a corresponding target memory as well as the number of this target memory. The number of the target memory and the corresponding relative target address therein constitute a target information associated to a data (LLR).

[0116] According to this first variant of the invention, each cell comprises sorting buffer means connected to the N outputs of the processing means, to the N interleaving tables and to the corresponding target memory, for

[0117] receiving N data with their associated number of target memory and the associated relative target address,

[0118] selecting from the N data those having an associated number of target memory identical to the number of the target memory connected to the cell, and

[0119] delivering them sequentially to the target memory.

[0120] Of course it is possible that during one time-step the sorting buffer means of a cell does not select any data, and consequently does not deliver any data to the corresponding target memory.

[0121] As illustrated more particularly in FIG. 5, the sorting buffer means of a cell CLi comprises especially sorting means SMM, and register means RGM.

[0122] And as illustrated diagrammatically in FIG. 4, all the sorting means SMM of all the cells CLi form together a single LLR distributor referenced LLRD.

[0123] We refer now to FIGS. 5 and 6 to describe more in details one embodiment of a sorting buffer means of a cell CLi.

[0124] Because in this example N is equal to three, three data are received in FIGS. 5 and 6 on the three inputs of the sorting buffer means. However, none of those or some of those or all the N data have to be stored in the local target RAM TMi, depending on their target information and more particularly on their associated number of target memory.

[0125] And, all these N data are received in the same clock cycle However, only one data can be stored per cycle in the target RAM TMi.

[0126] Thus, such a buffer must be able to store N values and output one value to memory in the same cycle.

[0127] Such a buffer does not need to support random access. It is implemented as special register file capable of storing up to N values in parallel. A value is composed here of a LLR-data with its associated target information, including the associated relative address.

[0128] Write and read accesses to a buffer can be modeled with writing windows where values can be stored in registers and reading windows. The writing window contains N registers, the worst case number of concurrent write accesses. Shifting it only by the number of values actually written prevents the creation of “holes” with irrelevant values.

[0129]FIG. 6 illustrates diagrammatically one embodiment of the sorting means SMM buffer still assuming that N is equal to 3. The sorting means comprises here two stages of two multiplexers 2:1 controlled by control signals C_(j) ^(k).

[0130] When a control signal takes the value 1, the data which is received at the input 1 of the multiplexer is delivered at the output. By analogy, when a control signal takes the value 0, the data which is received at the input 0 is delivered at the output of the multiplexer.

[0131] The sorting means SSM are associated with the number of the target memory which is actually connected to the cell CLi. When a data arrives at the input of the sorting means SSM, its associated number of target memory is compared with the number of the target memory which is actually connected to the cell CLi. If these two numbers are identical, a decision variable r^(x) is associated with the data and takes the value 1, for example. In the contrary, the decision variable r^(x) takes the value 0.

[0132] Control means, realized by logic gates, generates then the control signals as mentioned thereafter:

C¹ ₁=r¹

C¹ ₂=r¹

C² ₁=r² or r¹

C² ₂=r²

[0133] Thus, from the inputs, only those which are relevant for this buffer are selected and aligned such that they form an uninterrupted sequence starting from s¹ for example. These sorted sequence and the total number of relevant inputs (R) is passed to the register means RGM. The output s¹ to s^(R) are stored in the register means RGM. This ensures a continuous filling of the register's means RGM of relevant data only.

[0134] When reading from the register means ROM, the local address a and the data d are separated again and used to address the local target RAM accordingly.

[0135] An optimization based on two stages of buffers limits the number of inputs per buffer. Such an embodiment based on a dual stage reading pointer means is illustrated more in details in FIG. 7 in which N is equal to 4. The register means comprises here two register RGM1 and RGM2. The access scheme for the second level reading window has to ensure balanced emptying of the first level buffers. A cyclic reading of those buffers which are not empty is used.

[0136] We refer now to FIGS. 9 to 12 for the description of a second variant of an electronic device according to the invention.

[0137] Turning first to FIG. 8, the MAP1 unit, as well as the MAP2 unit, is a multi-LLR producer which has N outputs (here: N=4) for producing, per cycle of the clock signal which clocks the MAP unit, N data (here: N LLR) respectively associated to N input data respectively stored in N elementary source memories which form source memory means SMM.

[0138] N cells connected in a ring structure RGS are connected to the N output of the MAP1 unit as well as to interleaving table means constituted here by N interleaving tables. After having passed through the ring structure RGS, the N produced data (here, the N produced LLR) are stored in target memory means TMM constituted here by N target memories.

[0139] Each of the source memory and the target memory is a single port memory.

[0140] For the MAP2 unit, the target memory means TMM act as source memory means and the source memory means SMM of the MAP1 unit act as target memory means for the MAP2 unit. Further, the interleaving table means is replaced by deinterleaving table means DILTM.

[0141] Generally speaking, an electronic device according to the second variant of the invention comprises processing means (here, the MAP1 unit, for example) source memory means SMM, the ring structure RGS, the interleaving table means ILTM, and the target memory means TMM.

[0142] The structure and the operation of such an electronic device will be now described more in details in reference to the following figures. Further, as for the first variant, although the electronic device is described now by using interleaving table means, it is clear that the same concept applies to deinterleaving table means which can be in fact considered as being also in a certain way interleaving table means.

[0143] As illustrated more in details in FIG. 9, in which N is equal to 4, each cell CLi of the ring structure RGS, is connected between one output of the processing means MAP1, one interleaving table ILTi and the port of one target memory TMi.

[0144] Generally speaking, all the cells are adapted to receive data from the respective outputs of the processing means and from their two respective neighbouring cells, and to dispatch at least some of these received data to at least one of said two respective neighbouring cells or to write respectively at least some of these received data sequentially in the associated target memories, in accordance with the contents of said interleaving tables.

[0145] Each interleaver table ILTi comprises, for each relative source address of one source memory, the relative target address of a corresponding target memory as well as the number of this target memory. The number of the target memory and the corresponding relative target address therein constitute a target information associated to a data (LLR).

[0146] As illustrated more particularly in FIG. 10, a cell CLi comprises distribution means (LD) connected to a corresponding output of the processing means MAP1 and to the corresponding interleaving table, and also distribution means (RID, LID) connected to the two neighbouring cells.

[0147] The distribution means are adapted to receive generated data respectively associated with their target information. The distribution means will then deliver said generated data associated with their target information together with corresponding direction information.

[0148] Further to the distribution means, each cell comprises also sorting buffer means LB, LOB, ROB, connected to said distribution means, but also to the corresponding target memory and to the two neighbouring cells.

[0149] Generally speaking, sorting buffer means are adapted to receive the corresponding data associated with their target information and their corresponding direction information, to select from these data those which are to be actually passed through in accordance with the corresponding direction information, and delivering them sequentially.

[0150] Turning now again to the distribution means, it appears in FIG. 10 that the distribution means comprises a local distributor LD connected to the corresponding output of the processing means MAP1 and to the corresponding interleaving table. The local distributor receives a generated local data associated with its target information containing the corresponding number of the target memory and the corresponding relative target address therein.

[0151] This local distributor LD of the cell CLi has only to decide whether the incoming data is stored in the target RAM TMi connected to the cell CLi, or has to be sent left or right. The direction for non-local data is determined based on the shortest path to the target RAM.

[0152] The local distributor, which is formed for example by a logic circuit, delivers the received data with its target information and generates a direction information for this data.

[0153] This direction information is for example a word of two bits. For example, the values (0,0) means “go ahead” to the target RAM TMi. The values (0,1) means “go left” whereas the values (1,0) means “go right”.

[0154] A look-up table, not represented in FIG. 10, is associated with the cell and contains a mapping of the different values of the direction information and the numbers of the different cells (ie. the numbers of the different target memories). When a data arrives, the local distributor LCD compares the number of the corresponding target memory associated with this data with the content of the look-up table to generate a corresponding direction information.

[0155] Two additional distributors are necessary in each cell for the left and right inputs. More precisely, the distribution means of the cell CLi comprises a right-in distributor RID and a left-in distributor LID.

[0156] The right-in distributor is adapted to receive a right-in data delivered by the right neighbouring cell associated also with a target information. The right-in distributor delivers said right-in data associated with its target information, together with a direction information. The direction information is also generated using the look-up table.

[0157] By analogy, the left-in distributor LID is adapted to receive a left-in data delivered by the left neighbouring cell and for delivering said left-in data associated with its target information, together with a direction information.

[0158] As illustrated in FIG. 10, a data received by the local distributor LD can be stored in the local target memory TMi or be sent left or right.

[0159] By analogy, a data received by the right-in distributor can be stored to the local target RAM TMi or be sent to the left neighbouring cell.

[0160] A data received by the left-in distributor LID can be stored in the local RAM TMi or be sent to the right neighbouring cell.

[0161] The sorting buffer means comprises a local out sorting buffer LB having three inputs respectively connected to the local, right-in and left-in distributors. The local out sorting buffer LOB has also one output connected to the port of the local target memory TMi.

[0162] The local out sorting buffer LD is adapted to receive the corresponding data associated with their target information and their corresponding direction information, selecting from these data those which are to be stored in the target memory TMi in accordance with the corresponding direction information, and for writing them sequentially in said target memory in accordance with their relative destination addresses.

[0163] In the present case, the local out buffer LB can receive 0, 1 2or 3 data in one clock cycle, to be stored in the local target RAM. In other words, as several data sets may have the same target, the local buffer must be capable of storing more than one data per cycle and to deliver them sequentially one data per cycle. A specific architecture for such a buffer will be described more in details thereafter.

[0164] The left out sorting buffer LOB is adapted to receive, the corresponding data associated with their target information and their direction information, to select for these data those which are to be delivered to said right-in distributor of the left neighbouring cell in accordance with their direction information, and for delivering sequentially said selected data with their target information.

[0165] By analogy, the sorting buffer means comprises also a right-out sorting buffer ROB having two inputs respectively connected to the local and left-in distributor of the right neighbouring cell. The right out sorting buffer ROB is adapted to receive the corresponding data associated with their target information and their direction information, selecting from these data those which are to be delivered to said left-in distributor of the right neighbouring cell in accordance with their direction information, and to deliver sequentially said selected data with their target information.

[0166] We refer now to FIGS. 11 and 12 to describe more in details one embodiment of the local out buffer LB.

[0167] As already explained, three data are received on the three inputs of the local out buffer LB. However, none of those or some of those or all the three data have to be stored in the local target RAM TMi, depending on their direction information.

[0168] And, all these three data are received in the same clock cycle However, only one data can be stored per cycle in the target RAM TMi.

[0169] Thus, such a buffer must be able to store three values and output one value to memory in the same cycle.

[0170] Such a buffer does not need to support random access. It is implemented as special register file capable of storing up to three values. in parallel. A value is composed here of a LLR-data with its associated target information, including the associated relative address.

[0171] Write and read accesses to a buffer can be modeled with writing windows where values can be stored in registers and reading windows. The writing window contains three registers, the worst case number of concurrent write accesses. Shifting it only by the number of values actually written prevents the creation of “holes” with irrelevant values.

[0172]FIG. 12 illustrates diagrammatically one embodiment of the sorting means SMM buffer. The sorting means comprises here two stages of two multiplexers 2:1 controlled by control signals C_(j) ^(k).

[0173] When a control signal takes the value 1, the data which is received at the input 1 of the multiplexer is delivered at the output. By analogy, when a control signal takes the value 0, the data which is received at the input 0 is delivered at the output of the multiplexer.

[0174] The sorting means SSM are associated with a referenced direction information for this buffer, for example the referenced direction information (0,0) for the local out sorting buffer LB. When a data arrives at the input of the sorting means SSM, its direction information is compared with the referenced direction information. If these two direction information are identical, a decision variable r^(x) is associated with the data and takes the value 1, for example. In the contrary, the decision variable r^(x) takes the value 0.

[0175] Control means, realized by logic gates, generates then the control signals as mentioned thereafter:

C¹ ₁=r¹

C¹ ₂=r¹

C² ₁=r² or r¹

C² ₂=r²

[0176] Thus, from the inputs, only those which are relevant for this buffer arc selected and aligned such that they form an uninterrupted sequence starting from s¹ for example. These sorted sequence and the total number of relevant inputs (R) is passed to the register means. The output s¹ to s^(R) are stored in the register means RGM. This ensures continuous filling of the register's means RGM of relevant data only.

[0177] When reading from the register means RGM, the local address a and the data d are separated again and used to address the local target RAM accordingly.

[0178] Of course, an analogous architecture is used for the left out sorting buffer and the right out sorting buffer, with the differences that they have only two inputs instead of three.

[0179] A parametrisable VHDL model of the electronic device according to the second variant of the invention has been developed. Synthesis was carried out using a 0,20 μm standard cell library. Under worst case conditions, a maximum clock frequency of 190 MHz is achieved, whereas state of the art implementations of constituent MAP decoders in this technology can be clocked at about 150 MHz.

[0180] A Turbo-decoder system with 16 producers featuring an example of a distributed architecture according to the second variant of the invention can be clocked at 150 MHz. Comparing on a throughput basis, one would need for example 26 producers at 90 MHz using a tree-like structure as mentioned in the first variant of the invention, leading to a total area increase of about 30%.

[0181] Generally speaking, the invention is not limited to the particular application of channel decoding using turbo code but applies also to LDPC code decoders whose parity check matrix can also be interpreted as multiple interleavers.

[0182] Further the architectures according to the invention are not only useful for wireless systems but for all kinds of communication systems including wireline, wireless, router . . .

[0183] The architectures according to the invention can be used for all-kinds of interleaver and de-interleaver like Turbo-code interleaver/de-interleaver or normal channel interleaver or de-interleaver.

[0184] More generally, the invention relates to the storage of multiple data produced during one clock cycle, into memories which have a number of ports smaller than the number of data which are to be stored simultaneously in those memories.

[0185] And the architectures according to the invention can be used for all kind of systems with multiple sources and multiple sinks with a statistically equal access distribution. An equal distribution of the access to the sink leads to an optimum implementation.

[0186] For non equally distributed systems the architectures are no longer optimum but sub-optimum. Nevertheless, the architectures can still be used with some additional amount of memory. 

1. Electronic device, comprising a source memory means partitioned in N elementary source memories for storing a sequence of input data, processing means clocked by a clock signal and having N outputs for producing per cycle of the clock signal N data respectively associated to N input data respectively stored in the N elementary source memories at relative source addresses, N single port target memories, N interleaving tables containing for each relative source address the number of one target memory and the corresponding relative target address therein, and N cells), each cell being connected between the N outputs of the processing means, the N interleaving tables, and the port of one target memory, each cell being adapted to receive data from said N outputs of the processing means, to select up to N received data in accordance with the contents of said interleaving tables, and to write the selected data sequentially in the associated target memory.
 2. Electronic device according to claim 1, characterized by the fact that each cell comprises sorting buffer means connected to the N outpouts of the processing means, to the N interleaving tables and to the corresponding target memory, for receiving N data with their associated number of target memory and the associated relative target address, selecting from the N data those having an associated number of target memory identical to the number of the target memory connected to the cell, and delivering them sequentially to the target memory.
 3. Electronic device, according to claim 2, characterized by the fact that each sorting buffer means comprises sorting means having N inputs forming the inputs of the sorting buffer means, N outputs, and control input means for receiving said associated numbers of target memories, said sorting means being adapted to select from the data received at its N inputs those having an associated number of target memory identical with said the number of the target memory connected to the cell, and to deliver the selected data to consecutive outputs, register means comprising a predetermined number of elementary registers, each elementary register being adapted to store a selected data with its relative target address, writing pointer means for writing the selected data in consecutive elementary registers before being shifted by the number of values actually written, and reading pointer means for reading sequentially the elementary registers.
 4. Electronic device according to claim 3, characterized by the fact that said reading pointer means is a dual stage reading pointer means.
 5. Electronic device according to any one of the preceding claims, characterized by the fact that it is realized by an integrated circuit.
 6. Code decoder, characterized by the fact that it comprises an electronic device according any one of the preceding claims.
 7. Code decoder according to claim 6, characterized by the fact that it is a Turbo-code decoder.
 8. Code encoder, characterized by the fact that it comprises an electronic device according any one of claims 1 to
 5. 9. Code encoder according to claim 8, characterized by the fact that it is a Turbo-code encoder.
 10. Interleaver, characterized by the fact that it comprises an electronic device according any one of claims 1 to
 5. 11. De-interleaver, characterized by the fact that it comprises an electronic device according any one of claims 1 to
 5. 12. Component of a communication system, for example a wireless communication system, characterized by the fact that it comprises a Code decoder according to claim 6 or
 7. 13. Component according to claim 12, characterized by the fact that it comprises a Code encoder according to claim 8 or
 9. 14. Component according to claim 13, characterized by the fact that it forms a cellular mobile phone.
 15. Component according to claim 13, characterized by the fact that it forms a base station.
 16. Electronic device, comprising a source memory means partitioned in N elementary source memories for storing a sequence of input data, processing means clocked by a clock signal and having N outputs for producing per cycle of the clock signal N data respectively associated to N input data respectively stored in the N elementary source memories at relative source addresses, N single port target memories N interleaving tables containing for each relative source address the number of one target memory and the corresponding relative target address therein, N cells connected in a ring structure, each cell being further connected between one output of the processing means, one interleaving table, and the port of one target memory, each cell being adapted to receive data from said output of the processing means and from its two neighbouring cells, and to dispatch at least some of these received data to at least one of said two neighbouring cells or to write at least some of these received data sequentially in the associated target memory, in accordance with the contents of said interleaving tables.
 17. Electronic device according to claim 16, characterized by the fact that each cell comprises distribution means connected to the corresponding output of the processing means, to the corresponding interleaving table and to the two neighbouring cells for receiving generated data respectively associated with target information containing the corresponding number of the target memory and the corresponding relative target address, and for delivering said generated data associated with their target information, together with corresponding direction information, and sorting buffer means connected to said distribution means, to the corresponding target memory and to the two neighbouring cells for receiving the corresponding data associated with their target information and their corresponding direction information, selecting from these data those which are to be actually passed through in accordance with the corresponding direction information, and delivering them sequentially.
 18. Electronic device according to claim 17, characterized by the fact that said distribution means comprises a local distributor connected to the corresponding output of the processing means and to the corresponding interleaving table for receiving a generated local data associated with a target information, and for delivering said generated local data associated with its target information, together with a direction information, a right-in distributor for receiving a right-in data delivered by the right neighbouring cell associated with a target information, and for delivering said right-in data associated with its target information, together with a direction information, a left-in distributor for receiving a left-in data delivered by the left neighbouring cell associated with a target information, and for delivering said left-in data associated with its target information, together with a direction information.
 19. Electronic device according to claim 18, characterized by the fact that said sorting buffer means comprises a local out sorting buffer having three inputs respectively connected to the local, right-in and left-in distributors, and one output connected to the port of the corresponding target memory, for receiving the corresponding data associated with their target information and their corresponding direction information, selecting from these data those which are to be stored in the target memory in accordance with the corresponding direction information, and for writing them sequentially in said target memory in accordance with their relative target addresses, a left out sorting buffer having two inputs respectively connected to the local and right-in distributors, and one output connected to the right-in distributor of the left neighbouring cell, for receiving the corresponding data associated with their target information and their direction information, selecting from these data those which are to be delivered to said right-in distributor of the left neighbouring cell in accordance with their direction information, and for delivering sequentially said selected data with their target information, a right out sorting buffer having two inputs respectively connected to the local and left-in distributors, and one output connected to the left-in distributor of the right neighbouring cell, for receiving the corresponding data associated with their target information and their direction information, selecting from these data those which are to be delivered to said left-in distributor of the right neighbouring cell in accordance with their direction information, and for delivering sequentially said selected data with their target information.
 20. Electronic device according to any one of claims 17 to 19, characterized by the fact that each sorting buffer comprises sorting means associated with a reference direction information, having inputs forming the inputs of the sorting buffer, a number of outputs equal to the number of inputs, and control input means for receiving said direction information, said sorting means being adapted to select from the data received at its inputs those having a direction information identical with said reference direction information, and to deliver the selected data to consecutive outputs, register means comprising a predetermined number of elementary registers, each elementary register being adapted to store a selected data with its target information, writing pointer means for writing the selected data in consecutive elementary registers before being shifted by the number of values actually written, and reading pointer means for reading sequentially the elementary registers.
 21. Electronic device according to any one of claims 16 to 20, characterized by the fact that it is realized by an integrated circuit.
 22. Code decoder, characterized by the fact that it comprises an electronic device according any one of claims 16 to
 21. 23. Code decoder according to claim 22, characterized the fact that it is a Turbo-code decoder.
 24. Code encoder, characterized by the fact that it comprises an electronic device according any one of claims 16 to
 21. 25. Code encoder according to claim 24, characterized by the fact that it is a Turbo-code encoder.
 26. Interleaver, characterized by the fact that it comprises an electronic device according any one of claims 16 to
 21. 27. De-interleaver, characterized by the fact that it comprises an electronic device according any one of claims 16 to
 21. 28. Component of a communication system, for example a wireless communication system, characterized by the fact that it comprises a Code decoder according to claim 22 or
 23. 29. Component according to claim 28, characterized by the fact that it comprises a Code encoder according to claim 24 or
 25. 30. Component according to claim 29, characterized by the fact that it forms a cellular mobile phone.
 31. Component according to claim 29, characterized by the fact that it forms a base station. 